In order to support scripting, you must implement a subclass of the class ODSemanticInterface. We provide one such class pre-rolled for you.
The files SemtIntf.idl and SemtIntf.cpp implement an ODSemanticInterface subclass called ODCPlusSemanticInterface. This class uses a C++ helper class to allow you to install event handlers, object accessors, and other special callback procs very similar to the Apple events and OSL model. These files can be found in the "OpenDoc" folder that is replicated a number of times inside the Developer Starter Kit folder.
Please note, however, that these files are meant to be template files. They *must not* be used as is. SOM will not tolerate having more than one class around in the same process with the same name. So, if every developer used the same name, "ODCPlusSemanticInterface", for their ODSemanticInterface subclass, then there would be a collision once two or more parts using this same class were loaded into the same document. Therefore, if you use this pre-rolled class yourself, you must rename it. Since the header files are not included, you must also use the SOM compiler to generate a .xh and .xih file for you as well.
To simplify this, we have provided a PartMaker document called "Generate a Semantic Interface". You can run this to generate you own uniquely named version of the ODCPlusSemanticInterface class. Whatever name you enter into the dialog when you run this PartMaker document will be appended with "SI". It might be a good idea to use your part class name for the generation of your ODCPlusSemanticInterface class. Then, your ODCPlusSemanticInterface class will be named "<your part name>SI". This PartMaker document will also generate the proper .xih and .xh files for you.
If you are only implementing a small amount of scripting functionality in your part, you may wish to look at the Simple Semantic Interface PartMaker document.